package es.tikitaka.domain.colegiado;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

/**
 * 
 * @author Saúl Domínguez
 * @since 2010
 * @category PFC
 */

@Entity
@Table(name = "ESTCOLEGIADO")
public class EstColegiado {

	private Integer id;
	private PartColegiado colegiado;
	private int partidos;
	private int uno;
	private int x;
	private int dos;
	private int amarillas;
	private int rojas;
	private int amarillasL;
	private int rojasL;
	private int amarillasV;
	private int rojasV;
	private int penaltys;
	private int penaltysL;
	private int penaltysV;

	/**
	 * Constructor por defecto
	 */
	public EstColegiado() {
		// TODO Auto-generated constructor stub
	}

	/*
	 * getters and setters
	 */

	/**
	 * 
	 * @return id Id de las estadísticas del colegiado
	 */
	@Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ESTC_GEN")
	@SequenceGenerator(allocationSize = 1, name = "ESTC_GEN", sequenceName = "ESTC_SEQ")
	@Column(name = "X_ESTC", nullable = false, precision = 10, scale = 0)
	public Integer getId() {
		return id;
	}

	/**
	 * 
	 * @param id
	 */
	public void setId(Integer id) {
		this.id = id;
	}

	/**
	 * 
	 * @return
	 */
	@OneToOne(fetch = FetchType.LAZY, mappedBy = "estadisticas")
	public PartColegiado getColegiado() {
		return colegiado;
	}

	/**
	 * 
	 * @param colegiado
	 */
	public void setColegiado(PartColegiado colegiado) {
		this.colegiado = colegiado;
	}

	/**
	 * 
	 * @return partidos Número de partidos pitados en la temporada
	 */
	@Column(name = "PP")
	public int getPartidos() {
		return partidos;
	}

	/**
	 * 
	 * @param partidosPitados
	 */
	public void setPartidos(int partidos) {
		this.partidos = partidos;
	}

	/**
	 * 
	 * @return uno Número de partidos ganados por los locales
	 */
	@Column(name = "UNO")
	public int getUno() {
		return uno;
	}

	/**
	 * 
	 * @param uno
	 */
	public void setUno(int uno) {
		this.uno = uno;
	}

	/**
	 * 
	 * @return x Número de partidos que acabaron empate
	 */
	@Column(name = "X")
	public int getX() {
		return x;
	}

	/**
	 * 
	 * @param x
	 */
	public void setX(int x) {
		this.x = x;
	}

	/**
	 * 
	 * @return dos Número de partidos ganados por los visitantes
	 */
	@Column(name = "DOS")
	public int getDos() {
		return dos;
	}

	/**
	 * 
	 * @param dos
	 */
	public void setDos(int dos) {
		this.dos = dos;
	}

	/**
	 * 
	 * @return amarillas Número de tarjetas amarillas mostradas
	 */
	@Column(name = "TA")
	public int getAmarillas() {
		return amarillas;
	}

	/**
	 * 
	 * @param amarillas
	 */
	public void setAmarillas(int amarillas) {
		this.amarillas = amarillas;
	}

	/**
	 * 
	 * @return rojas Número de tarjetas rojas mostradas
	 */
	@Column(name = "TR")
	public int getRojas() {
		return rojas;
	}

	/**
	 * 
	 * @param tarjetasR
	 */
	public void setRojas(int rojas) {
		this.rojas = rojas;
	}

	/**
	 * 
	 * @return amarillasL Número de tarjetas amarillas mostradas a los equipos
	 *         locales
	 */
	@Column(name = "TAL")
	public int getAmarillasL() {
		return amarillasL;
	}

	/**
	 * 
	 * @param amarillasL
	 */
	public void setAmarillasL(int amarillasL) {
		this.amarillasL = amarillasL;
	}

	/**
	 * 
	 * @return rojasL Número de tarjetas rojas mostradas a los equipos locales
	 */
	@Column(name = "TRL")
	public int getRojasL() {
		return rojasL;
	}

	/**
	 * 
	 * @param rojasL
	 */
	public void setRojasL(int rojasL) {
		this.rojasL = rojasL;
	}

	/**
	 * 
	 * @return amarillasV Número de tarjetas amarillas mostradas a los equipos
	 *         visitantes
	 */
	@Column(name = "TAV")
	public int getAmarillasV() {
		return amarillasV;
	}

	/**
	 * 
	 * @param amarillasV
	 */
	public void setAmarillasV(int amarillasV) {
		this.amarillasV = amarillasV;
	}

	/**
	 * 
	 * @return tarjeasRV Número de tarjetas rojas mostradas a los equipos
	 *         visitantes
	 */
	@Column(name = "TRV")
	public int getRojasV() {
		return rojasV;
	}

	/**
	 * 
	 * @param rojasV
	 */
	public void setRojasV(int rojasV) {
		this.rojasV = rojasV;
	}

	/**
	 * 
	 * @return penaltys Número de penaltys pitados
	 */
	@Column(name = "PENALTYS")
	public int getPenaltys() {
		return penaltys;
	}

	/**
	 * 
	 * @param penaltys
	 */
	public void setPenaltys(int penaltys) {
		this.penaltys = penaltys;
	}

	/**
	 * 
	 * @return penaltysL Número de penaltys pitados contra los equipos locales
	 */
	@Column(name = "PENALTYSL")
	public int getPenaltysL() {
		return penaltysL;
	}

	/**
	 * 
	 * @param penaltysL
	 */
	public void setPenaltysL(int penaltysL) {
		this.penaltysL = penaltysL;
	}

	/**
	 * 
	 * @return penaltysV Número de penaltys pitados contra los equipos
	 *         visitantes
	 */
	@Column(name = "PENALTYSV")
	public int getPenaltysV() {
		return penaltysV;
	}

	/**
	 * 
	 * @param penaltysV
	 */
	public void setPenaltysV(int penaltysV) {
		this.penaltysV = penaltysV;
	}

	/**
	 * Método equals
	 */
	@Override
	public boolean equals(Object obj) {
		if (!(obj instanceof EstColegiado)) {
			return false;
		}
		if (obj != null) {
			if (this.id == ((EstColegiado) obj).getId()) {
				return true;
			}
		}
		return false;
	}

	/**
	 * Método hashCode
	 */
	@Override
	public int hashCode() {
		// TODO Auto-generated method stub
		return super.hashCode();
	}
}
